window: Fix tooltip allocation
authorTimm Bäder <mail@baedert.org>
Fri, 12 Jan 2018 21:22:51 +0000 (22:22 +0100)
committerTimm Bäder <mail@baedert.org>
Fri, 12 Jan 2018 21:34:22 +0000 (22:34 +0100)
Using get_preferred_size here does not work since it computes the
minimum height for the minimum width, but we want to know the minimum
height for the current width.

gtk/gtkwindow.c

index 910264e139f60c107a88ff8456594f1167e3cf90..99d58914ea7be6884860dbbe95b7abc489521f9e 100644 (file)
@@ -8976,7 +8976,7 @@ gtk_window_move_resize (GtkWindow *window)
   else
     {
       GtkAllocation allocation, clip;
-      GtkRequisition minsize;
+      int min_width, min_height;
 
       /* Handle any position changes.
        */
@@ -8986,15 +8986,18 @@ gtk_window_move_resize (GtkWindow *window)
                            new_request.x, new_request.y);
         }
 
-      gtk_widget_get_preferred_size (widget, &minsize, NULL);
+      gtk_widget_measure (widget, GTK_ORIENTATION_HORIZONTAL, current_height,
+                          &min_width, NULL, NULL, NULL);
+      gtk_widget_measure (widget, GTK_ORIENTATION_VERTICAL, current_width,
+                          &min_height, NULL, NULL, NULL);
 
       /* Our configure request didn't change size, but maybe some of
        * our child widgets have. Run a size allocate with our current
        * size to make sure that we re-layout our child widgets. */
       allocation.x = 0;
       allocation.y = 0;
-      allocation.width = MAX (current_width, minsize.width);
-      allocation.height = MAX (current_height, minsize.height);
+      allocation.width = MAX (current_width, min_width);
+      allocation.height = MAX (current_height, min_height);
 
       gtk_widget_size_allocate (widget, &allocation, -1, &clip);
     }